/*
 * @Description: 各种组件引入
 * @Author: wangfuwei
 * @Date: 2020-11-30 18:49:58
 * @LastEditors: wangfuwei
 * @LastEditTime: 2021-04-24 16:25:19
 * @FilePath: /horizon-frontend/src/core/use.js
 */
import Vue from "vue";
import VueStorage from "vue-ls";
import VueGridLayout from "vue-grid-layout";
import VueScroll from "vuescroll/dist/vuescroll-native";
import Confirm from "@/components/Confirm";
import Dialog from "@/components/Dialog";
import PageLoading from "@/components/PageLoading";
import Welcome from "@/components/Welcome";

import MultiTab from "@/components/MultiTab";

// base library
import { ConfigProvider, Layout, Input, InputNumber, Button, Switch, Radio, Checkbox, Select, Card, FormModel, Row, Col, Modal, Table, Tabs, Icon, Badge, Popover, Dropdown, List, Avatar, Breadcrumb, Steps, Spin, Menu, Drawer, Tooltip, Alert, Tag, Divider, DatePicker, TimePicker, Upload, Progress, Skeleton, Popconfirm, PageHeader, Result, Statistic, Descriptions, Empty, message, notification } from "ant-design-vue";

Vue.use(ConfigProvider);
Vue.use(Layout);
Vue.use(Input);
Vue.use(InputNumber);
Vue.use(Button);
Vue.use(Switch);
Vue.use(Radio);
Vue.use(Checkbox);
Vue.use(Select);
Vue.use(Card);
Vue.use(Row);
Vue.use(Col);
Vue.use(Modal);
Vue.use(Table);
Vue.use(Tabs);
Vue.use(Icon);
Vue.use(Badge);
Vue.use(Popover);
Vue.use(Dropdown);
Vue.use(List);
Vue.use(Avatar);
Vue.use(Breadcrumb);
Vue.use(Steps);
Vue.use(Spin);
Vue.use(Menu);
Vue.use(Drawer);
Vue.use(Tooltip);
Vue.use(Alert);
Vue.use(Tag);
Vue.use(Divider);
Vue.use(DatePicker);
Vue.use(TimePicker);
Vue.use(Upload);
Vue.use(Progress);
Vue.use(Skeleton);
Vue.use(Popconfirm);
Vue.use(PageHeader);
Vue.use(Result);
Vue.use(Statistic);
Vue.use(Descriptions);
Vue.use(Empty);
Vue.component("AForm", FormModel);
Vue.component("AFormItem", FormModel.Item);

Vue.prototype.$message = message;
Vue.prototype.$notification = notification;
Vue.prototype.$info = Modal.info;
Vue.prototype.$success = Modal.success;
Vue.prototype.$error = Modal.error;
Vue.prototype.$warning = Modal.warning;

// self library
Vue.use(Confirm);

// ext library
Vue.component("GridLayout", VueGridLayout.GridLayout);
Vue.component("GridItem", VueGridLayout.GridItem);
Vue.use(VueScroll, {
  ops: {
    bar: {
      showDelay: 1000,
      background: "rgba(138,153,170,.6)",
    },
  },
});
Vue.use(Dialog);
Vue.use(PageLoading);
Vue.use(Welcome);
Vue.use(MultiTab);
Vue.use(VueStorage, {
  namespace: "horizion__",
  name: "ls",
  storage: "local",
});

process.env.NODE_ENV !== "production" && console.warn("[antd-pro] NOTICE: Antd use lazy-load.");
